IDIV Деление с учетом знака

Флаги

O D I T S Z A P C
?       ? ? ? ? ?

Команда:

IDIV source 

Логика:

AL = AX / source    	;операнд source - байт
AH = remainder
                or
AX = DX:AX / source 	;операнд source - слово
DX = remainder 

Эта команда выполняет деление с учетом знака. Если операнд source является байтом, то IDIV делит значение слова в AX на операнд source, засылая частное в AL и остаток (remainder) в AH. Если же операнд source является словом, то IDIV делит значение двойного слова из DX:AX на операнд source, засылая частное в AX и остаток в DX.

Операнды Такт байты (слова)ОбращенияБайтыПример
регистр8101-112 - 2IDIV CL
регистр16165-184 - 2IDIV CX
память8(107-118)+EA 12-4IDIV BYTE[SI]
память16(175-194)+EA 12-4IDIV [BX].WORD_ARRAY

Примечания:
Если результат слишком велик и не умещается в AL (соотв. AX), то генерируется прерывание INT 0 (деление на ноль), и тогда частное с остатком не определены. Микропроцессоры 80286 и 80386 могут в качестве частного после выполнения этой команды генерировать наибольшее (по абсолютной величине) негативное число (80h или 8000h), однако, 8088/8086 сгенерируют в такой ситуации прерывание INT 0. Когда генерируется прерывание INT 0, то для процессоров 80286 и 80386 запоминаемое значение CS:IP указывает на неудавшуюся команду (т.е. на команду IDIV). Для процессоров 8088/8086 CS:IP указывает, однако, на команду, следующую за неудавшейся командой IDIV.

Hosted by uCoz